// 网络调试配置文件
export const NetworkConfig = {
    // 服务器地址配置
    servers: {
        primary: "https://qspm.qtech2000.cn:5443",
        backup: "http://qspm.qtech2000.cn:5442",
        local: "http://localhost:8080" // 本地开发服务器
    },
    
    // 请求配置
    requestConfig: {
        timeout: 30000,
        retryCount: 2,
        retryDelay: 1000
    },
    
    // 调试模式
    debug: true,
    
    // 网络检测
    async checkNetwork() {
        return new Promise((resolve) => {
            uni.getNetworkType({
                success: (res) => {
                    console.log('网络类型:', res.networkType)
                    resolve(res.networkType !== 'none')
                },
                fail: () => {
                    resolve(false)
                }
            })
        })
    },
    
    // 服务器连通性测试
    async testServerConnection(url) {
        return new Promise((resolve) => {
            uni.request({
                url: url + '/test',
                method: 'GET',
                timeout: 5000,
                success: () => {
                    console.log(`服务器连通性测试成功: ${url}`)
                    resolve(true)
                },
                fail: (err) => {
                    console.log(`服务器连通性测试失败: ${url}`, err)
                    resolve(false)
                }
            })
        })
    },
    
    // 获取最佳服务器
    async getBestServer() {
        const { primary, backup, local } = this.servers
        
        // 检查网络状态
        const hasNetwork = await this.checkNetwork()
        if (!hasNetwork) {
            throw new Error('无网络连接')
        }
        
        // 测试主服务器
        if (await this.testServerConnection(primary)) {
            return primary
        }
        
        // 测试备用服务器
        if (await this.testServerConnection(backup)) {
            return backup
        }
        
        // 测试本地服务器（开发环境）
        if (await this.testServerConnection(local)) {
            return local
        }
        
        throw new Error('所有服务器都无法连接')
    }
}